package com.flyco.modules.sms.entity;

import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.flyco.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 活动表
 * @Author: flyco
 * @Date:   2022-05-05
 * @Version: V1.0
 */
@Data
@TableName("sms_promotion")
@ApiModel(value="sms_promotion对象", description="活动表")
public class SmsPromotion implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**id*/
	@TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
	@JsonSerialize(using= ToStringSerializer.class)
	private Long id;
	/**urlcode，防猜*/
    @ApiModelProperty(value = "urlcode，防猜")
	private String urlCode;
	/**创建会员id,如果前台创建的话*/
    @ApiModelProperty(value = "创建会员id,如果前台创建的话")
	private Long createMemberId;
	/**活动展示类型，团购/秒杀/抢购*/
    @ApiModelProperty(value = "活动展示类型，团购/秒杀/抢购")
	@Dict(dicCode = "promotion_type")
	private String type;
	/**title*/
    @ApiModelProperty(value = "title")
	private String title;
	/**邮费规则：1按通用规则 2 本活动带动订单全免运费 3 本活动自身免运费 4 本活动单独邮费*/
    @ApiModelProperty(value = "邮费规则：1按通用规则 2 本活动带动订单全免运费 3 本活动自身免运费 4 本活动单独邮费")
	@Dict(dicCode = "promotion_freight_fee")
	private Integer freightFeeFlag;
	/**邮费计算表达式*/
    @ApiModelProperty(value = "邮费计算表达式")
	private String freightFeeExpr;
	/**新用户规则：1 仅现有会员，2 仅白名单手机号会员， 3通过链接即可*/
    @ApiModelProperty(value = "新用户规则：1 仅现有会员，2 仅白名单手机号会员， 3通过链接即可")
	@Dict(dicCode = "promotion_member_register")
	private Integer memberRegisterFlag;
	/**新用户将进入的tag*/
    @ApiModelProperty(value = "新用户将进入的tag")
	@Dict(dictTable ="ums_member_tag",dicText = "name",dicCode = "id")
	private Integer memberRegisterTagId;
	/**0默认，不支持自提，1可自提*/
    @ApiModelProperty(value = "0默认，不支持自提，1可自提")
	@Dict(dicCode = "promotion_self_delivery")
	private Integer selfDeliveryFlag;
	/**库存标识： 1-只看库存， 2-只看活动限量，3-同时看*/
    @ApiModelProperty(value = "库存标识： 1-只看库存， 2-只看活动限量，3-同时看")
	@Dict(dicCode = "promotion_stock")
	private Integer stockFlag;
	/**活动备注*/
    @ApiModelProperty(value = "活动备注")
	private Object remark;
	/**内部备注*/
    @ApiModelProperty(value = "内部备注")
	private Object innerRemark;
	/**开始日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "开始日期")
	private Date startDate;
	/**结束日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "结束日期")
	private Date endDate;
	/**指定门店标识(0不指定，1指定门店)*/
    @ApiModelProperty(value = "指定门店标识(0不指定，1指定门店)")
	@Dict(dicCode = "yn")
	private Integer storeFlag;
	/**状态：1：启用，0禁用*/
    @ApiModelProperty(value = "状态：1：启用，0禁用")
	@Dict(dicCode = "yn")
	private Integer status;
	/**优先级排序*/
    @ApiModelProperty(value = "优先级排序")
	private Integer sort;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
	private String createBy;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
	private String updateBy;
	/**更新时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;
}
